The present invention relates generally to the field of digital communications, and, more particularly, to the selection of code points for digital transmission of information.
The demand for remote access to information sources and data retrieval, as evidenced by the success of services such as the World Wide Web, is a driving force for high-speed network access technologies. The public switched telephone network (PSTN) offers standard voice services over a 4 kHz bandwidth. Traditional analog modem standards generally assume that both ends of a modem communication session have an analog connection to the PSTN. Because data signals are typically converted from analog to digital when transmitted towards the PSTN and then from digital to analog when received from the PSTN, data rates may be limited to 33.6 kbps as defined in the V.34 Transmission Recommendation developed by the International Telecommunications Union (ITU).
The need for an analog modem may be eliminated, however, by using the basic rate interface (BRI) of the Integrated Services Digital Network (ISDN). A BRI offers end-to-end digital connectivity at an aggregate data rate of 160 kbps, which is comprised of two 64 kbps B channels, a 16 kbps D channel, and a separate maintenance channel. ISDN offers comfortable data rates for Internet access, telecommuting, remote education services, and some forms of video conferencing. ISDN deployment, however, has generally been very slow due to the substantial investment required of network providers for new equipment. Because the ISDN is not very pervasive in the PSTN, the network providers have typically tariffed ISDN services at relatively high rates, which may be ultimately passed on to the ISDN subscribers. In addition to the high service costs, subscribers must generally purchase or lease network termination equipment to access the ISDN.
While most subscribers do not enjoy end-to-end digital connectivity through the PSTN, the PSTN is nevertheless mostly digital. Typically, the only analog portion of the PSTN is the phone line or local loop that connects a subscriber or client modem (e.g., an individual subscriber in a home, office, or hotel) to the telephone company""s central office (CO). Local telephone companies have been replacing portions of their original analog networks with digital switching equipment. Nevertheless, the connection between the home and the CO has been the slowest to change to digital as discussed in the foregoing with respect to ISDN BRI service. A recent data transmission recommendation issued by the ITU, known as V.90, takes advantage of the digital conversions that have been made in the PSTN. By viewing the PSTN as a digital network, V.90 technology can accelerate data downstream from the Internet or other information source to a subscriber""s computer at data rates of up to 56 kbps, even when the subscriber is connected to the PSTN via an analog local loop.
To understand how the V.90 Recommendation achieves this higher data rate, it may be helpful to briefly review the operation of V.34 analog modems. V.34 modems are generally optimized for a configuration in which both ends of a communication session are connected to the PSTN by analog lines. Even though most of the PSTN is digital, V.34 modems treat the network as if it were entirely analog. Moreover, the V.34 Recommendation assumes that both ends of the communication session suffer impairment due to quantization noise introduced by analog-to-digital converters. That is, the analog signals transmitted from the V.34 modems are sampled at 8000 times per second by a codec upon reaching the PSTN with each sample being represented or quantized by an eight-bit pulse code modulation (PCM) codeword. The codec uses 256, non-uniformly spaced, PCM quantization levels defined according to either the g-law or A-law companding standard (i.e., the ITU G.711 Recommendation)
Because the analog waveforms are continuous and the binary PCM codewords are discrete, the digits that are sent across the PSTN can only approximate the original analog waveform. The difference between the original analog waveform and the reconstructed quantized waveform is called quantization noise, which limits the modem data rate.
While quantization noise may limit a V.34 communication session to 33.6 kbps, it nevertheless affects only analog-to-digital conversions. The V.90 standard relies on the lack of analog-to-digital conversions in the downstream path, outside of the conversion made at the subscriber""s modem to enable transmission at 56 kbps.
The general environment for which the V.90 standard has been developed is depicted in FIG. 1. An Internet Service Provider (ISP) 22 is connected to a subscriber""s computer 24 via a V.90 digital server modem 26, through the PSTN 28 via digital trunks (e.g., T1, E1, or ISDN Primary Rate Interface (PRI) connections), through a central office switch 32, and finally through an analog loop to the client""s modem 34. The central office switch 32 is drawn outside of the PSTN 28 to better illustrate the connection of the subscriber""s computer 24 and modem 34 into the PSTN 28. It should be understood that the central office 32 is, in fact, a part of the PSTN 28. The operation of a communication session between the subscriber 24 and an ISP 22 is best described with reference to the more detailed block diagram of FIG. 2.
Transmission from the server modem 26 to the client modem 34 will be described first. The information to be transmitted is first encoded using only the 256 PCM codewords used by the digital switching and transmission equipment in the PSTN 28. These PCM codewords are transmitted towards the PSTN by the PCM transmitter 36 where they are received by a network codec. The PCM data is then transmitted through the PSTN 28 until reaching the central office 32 to which the client modem 34 is connected. Before transmitting the PCM data to the client modem 34, the data is converted from its current form as either xcexc-law or A-law companded PCM codewords to pulse amplitude modulated (PAM) voltages by the codec expander (digital-to-analog (D/A) converter) 38. These PAM voltage levels are processed by a central office hybrid 42 where the unidirectional signal received from the codec expander 38 is transmitted towards the client modem 34 as part of a bidirectional signal. A second hybrid 44 at the subscriber""s analog telephone connection converts the bidirectional signal back into a pair of unidirectional signals. Finally, the analog signal from the hybrid 44 is converted into digital PAM samples by an analog-to-digital (A/D) converter 46, which are received and decoded by the PAM receiver 48. Note that for transmission to succeed effectively at 56 kbps, there must be only a single digital-to-analog conversion and subsequent analog-to-digital conversion between the server modem 26 and the client modem 34. Recall that analog-to-digital conversions in the PSTN 28 may introduce quantization noise, which may limit the data rate as discussed hereinbefore. The A/D converter 46 at the client modem 34, however, may have a higher resolution than the A/D converters used in the analog portion of the PSTN 28 (e.g., 16 bits versus 8 bits), which results in less quantization noise. Moreover, the PAM receiver 48 needs to be in synchronization with the 8 kHz network clock to properly decode the digital PAM samples.
Transmission from the client modem 34 to the server modem 26 follows the V.34 data transmission standard. That is, the client modem 34 includes a V.34 transmitter 52 and a D/A converter 54 that encode and modulate the digital data to be sent using techniques such as quadrature amplitude modulation (QAM). The hybrid 44 converts the unidirectional signal from the digital-to-analog converter 54 into a bidirectional signal that is transmitted to the central office 32. Once the signal is received at the central office 32, the central office hybrid 42 converts the bidirectional signal into a unidirectional signal that is provided to the central office codec. This unidirectional, analog signal is converted into either xcexc-law or A-law companded PCM codewords by the codec compressor (AID converter) 56, which are then transmitted through the PSTN 28 until reaching the server modem 26. The server modem 26 includes a conventional V.34 receiver 58 for demodulating and decoding the data sent by the V.34 transmitter 52 in the client modem 34. Thus, data is transferred from the client modem 34 to the server modem 26 at data rates of up to 33.6 kbps as provided for in the V.34 standard.
The V.90 standard offers increased data rates (e.g., data rates up to 56 kbps) in the downstream direction from a server to a subscriber or client. Upstream communication still takes place at conventional data rates as provided for in the V.34 standard. Nevertheless, this asymmetry may be particularly well suited for Internet access. For example, when accessing the Internet, high bandwidth is most useful when downloading large text, video, and audio files to a subscriber""s computer. Using V.90, these data transfers can be made at up to 56 kbps. On the other hand, traffic flow from the subscriber to an ISP consists mainly of keystroke and mouse commands, which are readily handled by the conventional rates provided by V.34.
As described above, the digital portion of the PSTN 28 transmits information using eight-bit PCM codewords at a frequency of 8000 Hz. Thus, it would appear that downstream transmission should take place at 64 kbps rather than 56 kbps as defined by the V.90 standard. While 64 kbps is a theoretical maximum, several factors prevent actual transmission rates from reaching this ideal rate. First, even though the problem of quantization error has been substantially eliminated by using PCM encoding and PAM for transmission, additional noise in the network or at the subscriber premises, such as non-linear distortion and crosstalk, may limit the maximum data rate. Furthermore, the xcexc-law or A-law companding techniques do not use uniform PAM voltage levels for defining the PCM codewords. The PCM codewords representing very low levels of sound have PAM voltage levels spaced close together. Noisy transmission facilities may prevent these PAM voltage levels from being distinguished from one another thereby causing loss of data. Accordingly, to provide greater separation between the PAM voltages used for transmission, not all of the 256 PCM codewords are used.
It is generally known that, assuming a convolutional coding scheme, such as trellis coding, is not used, the number of symbols required to transmit a certain data rate is given by Equation 1:
bps=Rslog2Nsxe2x80x83xe2x80x83EQ. 1
where bps is the data rate in bits per second, Rs is the symbol rate, and Ns is the number of symbols in the signaling alphabet or constellation. To transmit at 56 kbps using a symbol rate of 8000, Equation 1 can be rewritten to solve for the number of symbols required as set forth below in Equation 2:
Ns=256000/8000=128xe2x80x83xe2x80x83EQ. 2
Thus, the 128 most robust codewords of the 256 available PCM codewords are chosen for transmission as part of the V.90 standard.
The V.90 standard, therefore, provides a framework for transmitting data at rates up to 56 kbps provided the network is capable of supporting the higher rates. The most notable requirement is that there can be at most one digital-to-analog conversion and subsequent analog-to-digital conversion in the path. Nevertheless, other digital impairments, such as robbed bit signaling (RBS) and digital mapping through PADs, which results in attenuated signals, may also inhibit transmission at V.90 rates. Communication channels exhibiting non-linear frequency response characteristics are yet another impediment to transmission at the V.90 rates. Moreover, these other factors may limit conventional V.90 performance to less than the 56 kbps theoretical data rate.
Because digital impairments, such as RBS and PAD, may vary from connection to connection, V.90 provides for learning the levels of the code points for the PCM codewords when a connection is established. For example, in Phase 3 of the V.90 standard, a sequence of PCM levels are sent from the server modem to the client modem. The resulting levels that are received by the client modem are used to help determine the nature of the digital portion of the telephone connection and to select appropriate code points for signal constellations used to transfer data.
During transmission and acquisition of these levels by the client modem, some levels may be corrupted by noise, non-linearities, and other impairments within the network. Large disturbances in the levels acquired by the client modem can significantly detract from the client modem capability to select appropriate code points for its signal constellations, which may lead to sub-optimum connections and possibly failure to connect in some cases.
The digital PSTN transports information using a six symbol framing structure. That is, a frame includes six data frame intervals with each data frame interval holding a single symbol. If noise is present during the training interval which is used to establish constellations for use in decoding symbols transmitted during a frame, then the learned levels may depart from the ideal levels. Thus, during data mode operation after the startup sequence has completed, inaccuracies in the constellations generated during startup may result in errors in symbol detection. These errors may reduce the overall data rate for the modem. Thus, a need exists for improvements in reducing the impact of noise, non-linearities and other impairments during data mode operations of a PCM modem where the constellation of the PCM modem is built from learned levels.
In light of the above discussion, it is an object of the present invention to improve performance of a PCM modem during data mode operations.
These and other objects, advantages, and features of the present invention may be provided by methods, systems and computer program products for refining constellation values in a Pulse Code Modulated (PCM) code point sequence of a PCM modem by averaging received levels associated with received symbols for a code point of interest received during data mode operation of the PCM modem so as to provide an average received level for the code point of interest and revising a constellation value corresponding to the code point of interest in the PCM code sequence based on the average received level for the code point of interest so as to provide a refined constellation value. Preferably, the averaging is performed by detecting that a symbol corresponding to the code point of interest has been received by the PCM modem and incorporating the received level of the symbol into a running sum of previously received levels for the symbol. If a predefined number of received levels have been incorporated into the running sum then the running sum is divided by the predefined number of received levels. It is also preferred that, after determining the sum for the code point of interest, the running sum is set to zero and a new code point selected as the code point of interest.
In a further aspect of the present invention, if the received level of the symbol deviates from the constellation value associated with the code-point of interest by less than a predefined threshold, then the received level of the symbol is incorporated into the running sum of previously received levels for the symbol. If the received level of the symbol does not deviate by less than the predefined threshold, then the received level is not incorporated into the running sum. Thus, large errors in received levels may be excluded from the average so as to not corrupt the average. Preferably, the predefined threshold is about xc2xc the value of the distance between the code point of interest and an adjacent code point in the PCM code point sequence.
In a preferred embodiment of the present invention, the PCM code point sequence is a plurality of PCM code point sequences associated with a plurality of framing intervals. In such an embodiment, the averaging and incorporation of averages into a constellation are carried out for a code point of interest in each of the plurality of framing intervals.
In a further aspect of the present invention, dead spots in symbol usage, which may result from modulous encoding in the frame intervals, may be accounted for by determining if a count of received levels associated with a running average of a first interval is not greater than a minimum threshold when a count from a second interval has reached the predefined number of received levels. A new code point is then selected as the code point of interest for the first interval if the count of received levels associated with the running average of the first interval is not greater than the minimum threshold. Thus, if one interval does not receive symbols corresponding to the code point of interest with a sufficient frequency, then the code point of interest may be changed for that interval to a new code point of interest. Typically, dead spots occur in the last frame interval, thus, in one embodiment of the present invention, the first interval is the last frame interval. In a preferred embodiment, the minimum threshold is zero.
In a particular embodiment of the present invention, the constellation value for the code point of interest is revised by averaging the constellation value corresponding to the code point of interest with the average received level and replacing the constellation value with the average of the constellation value and the average received level.
In a further aspect of the present invention, the refined constellation values may be saved in the event that the constellation is rebuilt by identifying learned levels associated with the constellation values and replacing the learned levels associated with the constellation values with refined constellation values prior to rebuilding of the constellation values. Thus, if the learned levels are stored as values in an array, the learned levels may be identified by storing the learned levels in the array so as to indicate that the value stored in the array is incorporated in the constellation values in the PCM code point sequence of the PCM modem. These values may then be replaced by the refined constellation values prior to rebuilding the constellation from the learned levels. In particular, the learned levels utilized in the previous constellation may be identified in the learned level array by storing the learned levels in the array so as to have a sign opposite to that of learned levels in the array which are not incorporated in the constellation values. Preferably, the sign of the learned levels incorporated in the constellation values is negative.
In still another aspect of the present invention where the constellation values are constellation values for a client modem, in the case where the server modem requests a rate change, rebuilding constellation values so as to provide new constellation values corresponding to the changed data rate may be ignored unless the client modem requests a data rate change.
As will be appreciated by those of skill in the art, the present invention may be embodied as methods, systems and/or computer program products.